package partThree;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**本类用于测试List接口*/
public class TestList {
    public static void main(String[] args) {
        //创建list接口的多态对象，因为是接口，所以不能直接创建，需要使用Arraylist
        List<String> list = new ArrayList<>();

        //2.练习继承自Collection父接口的方法
        list.add("大力娃");  //想list集合中存入数据
        list.add("千顺娃");
        list.add("头铁娃");
        list.add("喷火娃");
        list.add("喷水娃");
        list.add("隐身娃");
        list.add("紫娃娃");
        System.out.println(list); //打印查看集合中的数据

        //list.clear();  //清空集合
        //System.out.println(list);  //[]
        System.out.println(list.contains("喷火娃"));//true,判断集合是否包含指定元素
        System.out.println(list.equals("喷水娃"));//false,集合对象与String数据不等
        System.out.println(list.isEmpty());//false,判断集合是否为空
        System.out.println(list.remove("紫娃娃"));//移除集合中指定的元素
        System.out.println(list.size());//6，获取集合中元素的个数
        System.out.println(Arrays.toString(list.toArray()));//将集合转成数组

        //3.测试List接口自己的方法--List有序，可以根据索引来操作集合中的元素
        list.add("发福蝶");//追加在最后
        list.add(1,"大蟒鞋");//在指定的索引处添加元素
        list.add(3,"大脑斧");//在指定的索引处添加元素
        System.out.println(list);

        System.out.println(list.indexOf("发福蝶"));//3,获取指定元素第一次出现的索引
        System.out.println(list.lastIndexOf("发福蝶"));//8，获取指定元素最后一次出现的索引

        System.out.println(list);
        //根据索引删除元素，并将被删除的元素返回
        System.out.println(list.remove(2));  //根据索引删除集合中的元素
        System.out.println(list); //千顺娃被删除
        System.out.println(list.get(3));//获取指定索引处的元素
        System.out.println(list.set(7,"蝎子精"));//修改指定索引处元素的值为蝎子精
        System.out.println(list);  //发福蝶被换成蝎子精

        //集合间的操作
        List<String> list2 = new ArrayList<>();//创建第2个集合
        list2.add("1");//向集合2中添加元素
        list2.add("2");
        list2.add("3");
        list2.add("4");
        System.out.println(list2);//查看集合中的元素
        System.out.println(list.addAll(list2));//将2集合的所有元素追加到list集合的末尾
        System.out.println(list);  //打印添加元素后的list

        System.out.println(list.addAll(1,list2));//在list指定索引处，添加list2的所有元素
        System.out.println(list);  //打印添加元素后的list
    }
}